/*
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 * 
 * The Original Code is iSQL-Viewer, A Mutli-Platform Database Tool.
 *
 * The Initial Developer of the Original Code is iSQL-Viewer, A Mutli-Platform Database Tool.
 * Portions created by Mark A. Kobold are Copyright (C) 2000-2007. All Rights Reserved.
 *
 * Contributor(s): 
 *  Mark A. Kobold [mkobold <at> isqlviewer <dot> com].
 *  
 * If you didn't download this code from the following link, you should check
 * if you aren't using an obsolete version: http://www.isqlviewer.com
 */
package org.isqlviewer.mrj;

/**
 * Enumeration of Mac OS X Folder types
 * <p>
 * These types are used for the FileManager class in getting access to system folders.
 * <p>
 * I take no credit in the calculation of the names or values as i got them off of a list in the apple developer
 * mailings [http://lists.apple.com/archives/Java-dev/2003/Apr/msg00460.html]
 * 
 * @author Mark A. Kobold &lt;mkobold at isqlviewer dot com&gt;
 * @version 1.0
 */
public enum FolderType {
    /**
     * 
     */
    SYSTEM("macs"),
    /**
     * 
     */
    DESKTOP("desk"),
    /**
     * 
     */
    SYSTEM_DESKTOP("sdsk"),
    /**
     * 
     */
    TRASH("trsh"),
    /**
     * 
     */
    SYSTEM_TRASH("strs"),
    /**
     * 
     */
    WHERE_TO_EMPTY_TRASH("empt"),
    /**
     * 
     */
    PRINT_MONITOR("prnt"),
    /**
     * 
     */
    STARTUP("strt"),
    /**
     * 
     */
    SHUTDOWN("shdf"),
    /**
     * 
     */
    APPLE_MENU("amnu"),

    /**
     * 
     */
    CONTROL_PANEL("ctrl"),
    /**
     * 
     */
    SYSTEM_CONTROL_PANEL("sctl"),
    /**
     * 
     */
    EXTENSIONS("extn"),
    /**
     * 
     */
    FONT("font"),
    /**
     * 
     */
    PREFERENCES("pref"),
    /**
     * 
     */
    SYSTEM_PREFERENCES("sprf"),
    /**
     * 
     */
    TEMP("temp"),
    /**
     * 
     */
    APPLICATION_SUPPORT("asup");

    private int value = 0;

    private FolderType(String typeStr) {

        if (typeStr == null || typeStr.length() != 4) {
            this.value = 0;
        } else {
            int type = 0;
            byte[] bytes = typeStr.getBytes();
            for (int i = 0; i < 4; i++) {
                int t = bytes[i];
                t &= 0xFF;
                t <<= (3 - i) * 8;
                type |= t;
            }
            this.value = type;
        }
    }

    public int value() {

        return value;
    }
}
